উদাহরণ সহ HTTP Servlet তৈরি এবং ব্যবহার

HTTP Servlets - সার্ভলেটস (Servlets) - Java Technologies

370

HTTP Servlet হল একটি জাভা প্রোগ্রাম যা HttpServlet ক্লাসের এক্সটেনশন হিসেবে কাজ করে এবং HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডেল করে। এটি ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। HTTP Servlet এর সাহায্যে ওয়েব সার্ভারের সাথে যোগাযোগ করা হয় এবং ওয়েব পেজ বা অন্য কোন ডেটা ক্লায়েন্টকে রিটার্ন করা হয়। HTTP Servlet সাধারণত doGet(), doPost(), doPut() বা doDelete() মেথডের মাধ্যমে HTTP রিকোয়েস্টগুলো প্রক্রিয়া করে।

এই উদাহরণে, আমরা একটি সাধারণ HTTP Servlet তৈরি করব যা HTTP GET রিকোয়েস্ট হ্যান্ডেল করবে এবং "Hello, World!" মেসেজ রিটার্ন করবে।


1. HTTP Servlet তৈরি

1.1 Servlet Class তৈরি করা

প্রথমে একটি HttpServlet ক্লাস তৈরি করতে হবে যা doGet() মেথড ওভাররাইড করে এবং HTTP GET রিকোয়েস্টে একটি সিম্পল রেসপন্স দেয়।

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class HelloWorldServlet extends HttpServlet {

    // doGet() মেথড যা HTTP GET রিকোয়েস্ট হ্যান্ডেল করে
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // রেসপন্সের কনটেন্ট টাইপ সেট করা
        response.setContentType("text/html");

        // আউটপুট লেখার জন্য PrintWriter ব্যবহার করা
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>Hello, World!</h1>");
        out.println("</body></html>");
    }
}

এখানে:

  • doGet(): এই মেথডটি HTTP GET রিকোয়েস্ট হ্যান্ডল করে। এখানে, PrintWriter ব্যবহার করে HTML আউটপুট তৈরি করা হয়েছে যা "Hello, World!" মেসেজ প্রদর্শন করবে।

2. Servlet মেপিং

একটি Servlet তৈরি করার পর, এটি ওয়েব কন্টেইনারে (যেমন Apache Tomcat) মেপিং করতে হয়, যাতে ওয়েব অ্যাপ্লিকেশনের মাধ্যমে এটি অ্যাক্সেস করা যায়। Servlet মেপিং সাধারণত web.xml ফাইল বা @WebServlet অ্যানোটেশন দ্বারা করা হয়।

2.1 web.xml কনফিগারেশন

এটি ওয়েব অ্যাপ্লিকেশনটির WEB-INF ফোল্ডারে অবস্থিত। এখানে সার্ভলেটের কনফিগারেশন এবং URL প্যাটার্ন মাপিং করা হয়।

<web-app>
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>com.example.HelloWorldServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

এখানে:

  • : সার্ভলেটের নাম এবং : সার্ভলেটের পূর্ণ ক্লাস পাথ।
  • /hello: /hello URL এ রিকোয়েস্ট আসলে এই সার্ভলেটটি কল হবে।

2.2 @WebServlet অ্যানোটেশন

Java 6 থেকে, @WebServlet অ্যানোটেশন ব্যবহার করে সার্ভলেটের কনফিগারেশন এবং মেপিং করা যেতে পারে। এটি web.xml ফাইলের পরিবর্তে সরাসরি কোডে সার্ভলেট কনফিগারেশন দেয়।

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.*;

@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>Hello, World!</h1>");
        out.println("</body></html>");
    }
}

এখানে:

  • @WebServlet("/hello"): /hello URL প্যাটার্নে রিকোয়েস্ট আসলে এই সার্ভলেটটি কল হবে।

3. Servlet Deployment

3.1 Servlet Container

Servlet Container বা Servlet Engine হল একটি পরিবেশ যা সার্ভলেটকে রান করতে সহায়তা করে। জনপ্রিয় সার্ভলেট কনটেইনার যেমন Apache Tomcat সার্ভলেট এবং JSP প্রোগ্রাম রান করার জন্য ব্যবহৃত হয়।

3.2 Servlet Deployment Steps

  1. Servlet Class তৈরি করুন: উপরের Servlet কোডটি একটি .java ফাইলে লিখুন।
  2. Servlet Class কম্পাইল করুন: javac HelloWorldServlet.java
  3. web.xml কনফিগারেশন বা @WebServlet অ্যানোটেশন ব্যবহার করুন: URL প্যাটার্ন সহ কনফিগারেশন করুন।
  4. Servlet কনটেইনারে ডিপ্লয় করুন: Servlet ক্লাস এবং web.xml ফাইলটি Tomcat বা অন্য কোন Servlet কনটেইনারে ডিপ্লয় করুন। সাধারণত এটি WEB-INF/classes ফোল্ডারে রাখা হয়।
  5. Servlet কনটেইনার চালু করুন: Tomcat চালু করুন এবং ব্রাউজারে গিয়ে http://localhost:8080/your-web-app-name/hello URL এ রিকোয়েস্ট পাঠান।

4. Servlet Output

যখন আপনি ব্রাউজারে http://localhost:8080/hello URLটি প্রবেশ করবেন, তখন সার্ভলেটটি HTTP GET রিকোয়েস্ট গ্রহণ করবে এবং "Hello, World!" মেসেজ সহ একটি HTML পেজ রিটার্ন করবে।

আউটপুট:

Hello, World!

এটি ওয়েব পেজে "Hello, World!" মেসেজ প্রদর্শন করবে।


5. Servlet Lifecycle

সার্ভলেটের একটি নির্দিষ্ট জীবনচক্র থাকে, যা Servlet Container পরিচালনা করে। সার্ভলেট জীবনচক্রের তিনটি প্রধান ধাপ রয়েছে:

  1. Initialization: সার্ভলেট প্রথমবার কনটেইনারে ইনস্ট্যান্সিয়েট হয় এবং init() মেথড কল হয়।
  2. Request Handling: সার্ভলেট কনটেইনার HTTP রিকোয়েস্ট গ্রহণ করে এবং service() মেথড কল করে, যা উপযুক্ত HTTP মেথড (যেমন doGet(), doPost()) কল করে।
  3. Destruction: যখন সার্ভলেট কনটেইনার থেকে সরিয়ে ফেলা হয়, তখন destroy() মেথড কল হয়।

উদাহরণ:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class LifecycleServlet extends HttpServlet {

    @Override
    public void init() throws ServletException {
        System.out.println("Servlet is initialized");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println("Servlet is handling the request");
    }

    @Override
    public void destroy() {
        System.out.println("Servlet is destroyed");
    }
}

এখানে:

  • init(): সার্ভলেট শুরু হলে এটি একবার কল হবে।
  • destroy(): সার্ভলেট ধ্বংস হলে এটি কল হবে।

সারাংশ

HTTP Servlet হল একটি জাভা প্রোগ্রাম যা HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডেল করে ওয়েব সার্ভারে কাজ করে। doGet() মেথডের মাধ্যমে সার্ভলেট HTTP GET রিকোয়েস্ট হ্যান্ডেল করে এবং HTML রেসপন্স রিটার্ন করে। Servlet Mapping web.xml অথবা @WebServlet অ্যানোটেশন ব্যবহার করে করা হয়। সার্ভলেট কনটেইনার (যেমন Tomcat) এ সার্ভলেট ডিপ্লয় করার পর, আপনি এটি ওয়েব ব্রাউজারে অ্যাক্সেস করতে পারবেন। সার্ভলেটের জীবনচক্রে init(), doGet(), এবং destroy() মেথডগুলির ভূমিকা রয়েছে, যা সার্ভলেটের ইনিশিয়ালাইজেশন, রিকোয়েস্ট হ্যান্ডলিং এবং ধ্বংস কাজগুলি সম্পন্ন করে।

Content added By
Promotion

Are you sure to start over?

Loading...